const viewModules = import.meta.glob('@/view/**/*.vue')
const pluginModules = import.meta.glob('../plugin/**/*.vue')
const aa动态模块 = import.meta.glob('@/aa/**/*.vue')
const layouts = import.meta.glob('@/layouts/**/*.vue')
const 组件模块集 = {
  ...viewModules,
  ...pluginModules,
  ...aa动态模块,
  ...layouts
};
// console.log(`组件模块集 👉`,组件模块集)
// console.log(`aa动态模块 👉`,aa动态模块)
export const asyncRouterHandle = (asyncRouter) => {
  // console.log(`asyncRouter 👉`,asyncRouter)
  // console.log(`viewModules 👉`,viewModules)
  // let page_layout = import.meta.glob('@/layouts/page_layout.vue')
  let 父路由 = () => import('@/layouts/父路由.vue')
  asyncRouter.forEach(item => {
    if (item.component && typeof item.component === 'string') {
      // console.log(`item.name 👉`, item.name)
      // console.log(`item.path 👉`, item.path)
      // console.log(`item.component 👉`, item.component)
      let 组件全名 = "/src/" + item.component
      // console.log(`组件全名 👉`,组件全名)
      item.meta.path = 组件全名
      let 匹配组件 = 组件模块集[组件全名]

      if (item.component == 'view/superAdmin/index.vue') {
        // console.log(`view/superAdmin/index.vue item.name 👉`, item.name)
        // console.log(`item.path 👉`, item.path)
        // console.log(`item.component 👉`, item.component)
        匹配组件 = 父路由
      }
      if (item.component == 'view/routerHolder.vue') {
        匹配组件 = 父路由
      }

      // if (item.component.includes('user')) {
      //   console.log(`item.name 👉`, item.name)
      //   console.log(`item.path 👉`, item.path)
      //   console.log(`item.component 👉`, item.component)
      //   console.log(`item.parent 👉`, item.parent)
      // }
      // if (item.component.includes('menu')) {
      //   console.log(`item.name 👉`, item.name)
      //   console.log(`item.path 👉`, item.path)
      //   console.log(`item.component 👉`, item.component)
      //   console.log(`item.parent 👉`, item.parent)
      // }
      // if (item.component.includes('authority')) {
      //   console.log(`item.name 👉`, item.name)
      //   console.log(`item.path 👉`, item.path)
      //   console.log(`item.component 👉`, item.component)
      //   console.log(`item.parent 👉`, item.parent)

      // }

      if (!匹配组件) {
        let sps = item.component.split('/')
        // console.log(`sps 👉`,sps)
        let 组件首名 = sps[0]
        if (组件首名 === 'view') {
          // console.log(`item.name 👉`, item.name)
          // console.log(`item.path 👉`, item.path)
          // console.log(`item.component 👉`, item.component)
          匹配组件 = 组件模块集[组件全名]
        }
        else if (组件首名 === 'plugin') {
          item.component = dynamicImport(pluginModules, item.component)
        }
        else if (组件首名 === '找aa') {
          // console.log(`item.name 👉`, item.name)
          // console.log(`item.path 👉`, item.path)
          // console.log(`item.component 👉`, item.component)
          const 文件名 = item.name
          // const 文件名 = item.name.replaceAll('_', '/')

          // console.log(`文件名 👉`, 文件名)
          匹配组件 = 组件模块集[`/src/aa/${文件名}.vue`]
          // item.component = 匹配组件
        }
        else {
          // console.log(`item.name 👉`, item.name)
          // console.log(`item.path 👉`, item.path)
          // console.log(`item.component 👉`, item.component)
        }
      }
      // 最终赋值👇
      if (匹配组件) {
        item.component = 匹配组件
      } else {
        // console.log(`硬是没匹配到组件 item 👉`,item)
      }
    }
    if (item.children) {
      // console.log(`item.children 👉`,item.children)
      asyncRouterHandle(item.children)
    }
  })
}

function dynamicImport(
  dynamicViewsModules,
  component
) {
  const keys = Object.keys(dynamicViewsModules)
  const matchKeys = keys.filter((key) => {
    const k = key.replace('../', '')
    return k === component
  })
  const matchKey = matchKeys[0]

  return dynamicViewsModules[matchKey]
}
